package com.yida.wy.vote.outside.service;

import com.yida.wy.vote.outside.domain.dto.WyVoteResultDTO;
import com.yida.wy.vote.outside.domain.WyVoteResult;

import java.util.List;

/**
 * 投票结果Service接口
 *
 * @author lqq
 * @date 2023-03-22
 */
public interface IWyVoteResultService {

	/**
	 * 查询投票结果
	 *
	 * @param resultId 投票结果主键
	 * @return 投票结果
	 */
	public WyVoteResultDTO selectVoteResultByResultId(Long resultId);

	/**
	 * 查询投票结果列列表（只查已选择的）
	 *
	 * @param voteResult 投票结果
	 * @return 投票结果集合
	 */
	public List<WyVoteResultDTO> selectVoteResultList(WyVoteResultDTO voteResult);

	/**
	 * 查询投票结果列列表
	 *
	 * @param voteResult 投票结果
	 * @return 投票结果集合
	 */
	public List<WyVoteResultDTO> selectVoteResultDtoList(WyVoteResultDTO voteResult);

	/**
	 * 新增投票结果
	 *
	 * @param voteResult 投票结果
	 * @return 结果
	 */
	public int insertVoteResult(WyVoteResult voteResult);

	/**
	 * 新增投票结果
	 *
	 * @param voteResults 投票结果
	 * @return 结果
	 */
	public int insertBatchVoteResult(List<WyVoteResult> voteResults);

	/**
	 * 修改投票结果
	 *
	 * @param voteResult 投票结果
	 * @return 结果
	 */
	public int updateVoteResult(WyVoteResult voteResult);

	/**
	 * 批量删除投票结果列
	 *
	 * @param resultIds 需要删除的投票结果列主键集合
	 * @return 结果
	 */
	public int deleteVoteResultByResultIds(Long[] resultIds);

	/**
	 * 删除投票结果列信息
	 *
	 * @param resultId 投票结果列主键
	 * @return 结果
	 */
	public int deleteVoteResultByResultId(Long resultId);

	/**
	 * 批量删除投票结果列
	 *
	 * @param houseCodes 需要删除的数据房屋标识码集合
	 * @param voteId     投票ID
	 * @return 结果
	 */
	public int deleteVoteResultByHouseCodesAndVoteId(String[] houseCodes, Long voteId);
}
